package main.java.seguridad.interfaces;

import java.sql.Date;
import java.util.List;

import main.java.aplicacion.ManejadorSistemaError;
import main.java.aplicacion.juegos.entidades.Juego;
import main.java.aplicacion.juegos.excepciones.JuegoError;
import main.java.aplicacion.usuarios.excepciones.UsuarioError;
import main.java.datatypes.juegos.CompraJuegoVO;
import main.java.datatypes.juegos.JuegoVO;
import main.java.datatypes.usuarios.ClienteVO;
import main.java.datatypes.usuarios.LoggedVO.Tipo;
import main.java.seguridad.excepciones.LogueadosError;

public interface LogueadosMgt {

	public boolean memberLogueado(String nick) throws LogueadosError;
	
	public void add(String nick, Tipo tipo);
	
	public void remove(String nick);
	
	List<String> altaJuego(String nombreJuego, double tam, double precio, String descripcion, String nick) throws LogueadosError, ManejadorSistemaError, JuegoError;
	
	public void seleccionarDesarrollador(String nick, String nombreJuego, String dsc, double tam , double precio,List<String> categoriasJuego) throws LogueadosError, JuegoError, UsuarioError;
	
	public List<String> listarJuegosAprobadosDesarrollador(String nick) throws LogueadosError, UsuarioError;
	
	public boolean existeVersionPendienteAprobada(String nombreJuego , String numero, String nick) throws LogueadosError;
	
	public List<CompraJuegoVO> comprarJuego(String nick) throws LogueadosError;
	
	public Juego find(String juego);
	 
	public void confirmarCompra(Date d, String cliente, String juego);
	
	public List<String> ListarJuegos(String cat) throws ManejadorSistemaError;
	
	public List<String> ListarJuegos(String nick, String cat) throws ManejadorSistemaError;
	
	public JuegoVO buscarJuego(String nombre);
	
	public ClienteVO buscarCliente(String nombre);
	
	public String getLinkJuego(String nom);
	
	public List<JuegoVO> listarJuegosVisitante(String cat, int pag);
	
	public List<JuegoVO> listarJuegosDesarrollador(String cat, int pag, String nick, boolean isAprov);
	
	public List<JuegoVO> listarJuegosCliente(String cat, int pag, String nick);
		
	public List<String> obtenerCategorias();	
		
}
